package ss.pjname.base.common.util;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;

/*
 * Create by liuyisipu on 2024/4/5 17:54
 *
 */
public class SmsUtils {
    public static boolean checkSmsExpired(LocalDateTime localDateTime){

        return false;
    }


    /**
     * 计算时间差，精确到毫秒
     *
     * @param startTime 开始时间
     * @param endTime   截止时间
     * @return long 时间差
     **/
    public static long getTimeCost(LocalDateTime startTime, LocalDateTime endTime) {
        return getTimeCost(startTime, endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
    }

    /**
     * 计算时间差，精确到毫秒
     *
     * @param startTime 开始时间
     * @param endTime   截止时间
     * @param formatter 时间格式
     * @return 时间差
     */
    public static long getTimeCost(LocalDateTime startTime, LocalDateTime endTime, DateTimeFormatter formatter) {
        try {
            // 得到两者的毫秒数
            return java.time.Duration.between(startTime, endTime).toMillis();
        } catch (Exception ex) {
            return 0;
        }
    }
    /**
     * 判断给定的毫秒数是否小于三小时
     *
     * @param milliseconds 给定的毫秒数
     * @return boolean 如果小于三小时返回 true，否则返回 false
     */
    public static boolean isLessThanThreeHours(long milliseconds) {
        long threeHoursInMilliseconds = 3 * 60 * 60 * 1000; // 三小时的毫秒数
        return milliseconds < threeHoursInMilliseconds;
    }
    public static String getRandomUUid(){
        String uuid = RandomUtil.getUUID();
        return uuid;
    }
    // 生成纯数字验证码的方法
    public static String generateNumericCode() {
        Random random = new Random();
        StringBuilder code = new StringBuilder(6);
        for (int i = 0; i < 6; i++) {
            code.append(random.nextInt(10)); // 生成0-9之间的随机数字
        }
        return code.toString();
    }

    // 生成字母+数字验证码的方法
    public static String generateAlphanumericCode() {
        Random random = new Random();
        StringBuilder code = new StringBuilder(6);

        // 生成2位随机字母
        for (int i = 0; i < 2; i++) {
            char letter = (char) (random.nextInt(26) + 'A'); // 生成A-Z之间的随机字母
            code.append(letter);
        }

        // 生成4位随机数字
        for (int i = 0; i < 4; i++) {
            code.append(random.nextInt(10)); // 生成0-9之间的随机数字
        }

        return code.toString();
    }

}
